/**
 * 
 */
package com.leo.book.distributed.chapter04;

import java.util.concurrent.Semaphore;

/**
 * Description: 
 * @author lianliang
 * @date 2017年12月18日 下午3:45:59
 */
public class TrafficControl {

	/**
	 * 基于Java的信号量机制，实现流量控制的代码
	 * @param args
	 */
	public static void main(String[] args) {
		Semaphore semaphore = new Semaphore(100);
		// ...
		int waitQueue = 0;
		// 等待队列的长度根据实际情况调整
		waitQueue = 40;
		if(semaphore.getQueueLength()>waitQueue) {
			return ;
		}
		try {
			semaphore.acquire();
			// 处理具体业务逻辑
		} catch(InterruptedException e) {
			e.printStackTrace();
		} finally {
			semaphore.release();
		}
	}

}
